package com.glsc.ngateway.common.api.oaflow.dto.xirtrade;

import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.SuperBuilder;
import org.springframework.data.annotation.Transient;

import java.util.List;

/**
 * oa同步自研网关记录实体类
 * @author xuchang
 */
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
@SuperBuilder
public class TOaFlowXirTradeInfoGSBDto extends TOaFlowXirTradeBaseInfoDto {

    private static final long serialVersionUID = -3264094474527903316L;
    @ApiModelProperty(value = "希望完成时间，为当天日期")
    private String expectDate;
    @Builder.Default
    @ApiModelProperty(value = "是否为授权账户，选否")
    private Integer authorizedAccount = 1;
    @Builder.Default
    @ApiModelProperty(value = "是否为授权内金额，选是")
    private Integer withinAuthorizedAmount = 0;

    @Transient
    @ApiModelProperty(value = "借贷费用描述")
    private String settleFeeDesc;
    @Transient
    private List<TOaFlowXirTradeInfoDetailGSBDto> detailList;

    /**
     * oa同步自研网关记录实体类
     * @author xuchang
     */
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @Builder
    public static class TOaFlowXirTradeInfoDetailGSBDto {
        @Transient
        @Builder.Default
        private Integer detailIndex = 3;
        @ApiModelProperty(value = "是否划付")
        private Integer whetherPayment;
        @ApiModelProperty(value = "用款日期")
        private String paymentDate;
        @ApiModelProperty(value = "申请调拨金额，衡泰的分销总额")
        private String payAmount;
        @ApiModelProperty(value = "付款单位")
        private String paymentOrganization;
        @ApiModelProperty(value = "付款账号")
        private String paymentAccount;
        @ApiModelProperty(value = "付款账号2，付款账户选项")
        private String paymentAccount2;
        @ApiModelProperty(value = "付款账户名称")
        private String paymentAccountName;
        @ApiModelProperty(value = "付款银行类别")
        private String paymentAccountBankType;
        @ApiModelProperty(value = "付款银行名称")
        private String paymentAccountBankName;
        @ApiModelProperty(value = "付款大额支付账号")
        private String paymentLargeAmountAccount;
        @Builder.Default
        @ApiModelProperty(value = "是否需手动录入，选是")
        private Integer manualEnter = 1;

        @ApiModelProperty(value = "收款账户名称")
        private String receiveAccountName;
        @ApiModelProperty(value = "收款账户")
        private String receiveAccount;
        @ApiModelProperty(value = "收款方开户行")
        private String receiveAccountBank;
        @ApiModelProperty(value = "收款方银行类别")
        private String receiveAccountBankType;
        @ApiModelProperty(value = "收款方大额支付行号")
        private String receiveLargeAmountAccount;

        @ApiModelProperty(value = "收款账户名称（手动）")
        private String receiveAccountNameManual;
        @ApiModelProperty(value = "收款账户（手动）")
        private String receiveAccountManual;
        @ApiModelProperty(value = "收款方开户行（手动）")
        private String receiveAccountBankManual;
        @ApiModelProperty(value = "收款方银行类别（手动）")
        private String receiveAccountBankTypeManual;
        @ApiModelProperty(value = "收款方大额支付行号（手动）")
        private String receiveLargeAmountAccountManual;
        @ApiModelProperty(value = "划款类型2，选其他")
        private Integer paymentType;
        @ApiModelProperty(value = "备注，国联证券认购XX债券缴款金额XX元。债券名称为衡泰中债券名称和代码，缴款金额即为衡泰中的“分销总额")
        private String remark;
    }
}
